(isearch-done): Use FOUND-POINT or FOUND-START
authorRichard M. Stallman <rms@gnu.org>
Mon, 1 Jan 2007 21:48:59 +0000 (21:48 +0000)
committerRichard M. Stallman <rms@gnu.org>
Mon, 1 Jan 2007 21:48:59 +0000 (21:48 +0000)
only if we restored isearch-window-configuration.

lisp/isearch.el

index a7d239aebc2317126d35038ecb10c08c61bfb50f..ca569eeff1682c7a16aff50497914bcbfcecafb3 100644 (file)
@@ -784,13 +784,15 @@ NOPUSH is t and EDIT is t."
   (lazy-highlight-cleanup lazy-highlight-cleanup)
   (let ((found-start (window-start (selected-window)))
        (found-point (point)))
-    (if isearch-window-configuration
-       (set-window-configuration isearch-window-configuration))
-
-    (if isearch-small-window
-       (goto-char found-point)
-      ;; Exiting the save-window-excursion clobbers window-start; restore it.
-      (set-window-start (selected-window) found-start t)))
+    (when isearch-window-configuration
+      (set-window-configuration isearch-window-configuration)
+      (if isearch-small-window
+         (goto-char found-point)
+       ;; set-window-configuration clobbers window-start; restore it.
+       ;; This has an annoying side effect of clearing the last_modiff
+       ;; field of the window, which can cause unwanted scrolling,
+       ;; so don't do it unless truly necessary.
+       (set-window-start (selected-window) found-start t))))
 
   (setq isearch-mode nil)
   (if isearch-input-method-local-p